<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:fn="http://java.sun.com/jsp/jstl/functions"
      xmlns:h="http://java.sun.com/jsf/html">

    <body>

        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">

            <ui:define name="bar">
                <h:form id="barForm">
                    <p:commandButton styleClass="actionButton" id="filtrarProductoButton" value="Filtrar" onclick="dialogoFiltrarProducto.show()"></p:commandButton>  
                    <p:commandButton styleClass="actionButton" id="paisesColumnas" onclick="dialogoPaisesColumnas.show();" value="Paises" update=":dialogoForm:panelDialogoPaisesColumnas"></p:commandButton>                
                </h:form>
            </ui:define>

            <ui:define name="dialogs">
                <h:form id="dialogoForm">                    
                    <p:dialog id="dialogoFiltrarProducto" modal="true" widgetVar="dialogoFiltrarProducto"  header="#{messages.FiltrarProducto}">
                        <h:panelGrid id="panelDialogoFiltrado" columns="2">
                            <p:outputLabel for="filtrarD" value="#{messages.D}"></p:outputLabel>
                            <p:selectOneMenu  converter="#{dConverter}" id="filtrarD" value="#{productosPvpBean.filtradoDataModel.DFiltrado}" label="#{messages.D}">
                                <f:selectItem itemLabel="#{messages.SeleccionaD}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ds}" var="d" itemLabel="#{d.descripcion}" itemValue="#{d}"></f:selectItems>
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarC" value="#{messages.C}"></p:outputLabel>
                            <p:selectOneMenu converter="#{cConverter}" id="filtrarC" value="#{productosPvpBean.filtradoDataModel.CFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaC}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.cs}" var="c" itemLabel="#{c.descripcion}" itemValue="#{c}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarS" value="#{messages.S}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sConverter}" id="filtrarS" value="#{productosPvpBean.filtradoDataModel.SFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaS}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ss}" var="s" itemLabel="#{s.descripcion}" itemValue="#{s}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarTemporada" value="#{messages.Temporada}"></p:outputLabel>
                            <p:selectOneMenu converter="#{temporadaConverter}" id="filtrarTemporada" value="#{productosPvpBean.filtradoDataModel.temporadaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaTemporada}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.temporadas}" var="temporada" itemLabel="#{temporada.descripcion}" itemValue="#{temporada}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarSerieTallaje" value="#{messages.SerieTallaje}"></p:outputLabel>
                            <p:selectOneMenu converter="#{serieTallajeConverter}" id="filtrarSerieTallaje" value="#{productosPvpBean.filtradoDataModel.serieTallajeFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSerieTallaje}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.seriesTallaje}" var="serieTallaje" itemLabel="#{serieTallaje.descripcion}" itemValue="#{serieTallaje}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarSexo" value="#{messages.Sexo}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sexoConverter}" id="filtrarSexo" value="#{productosPvpBean.filtradoDataModel.sexoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSexo}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.sexos}" var="sexo" itemLabel="#{sexo.descripcion}" itemValue="#{sexo}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="filtrarProveedor" value="#{messages.Proveedor}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="filtrarProveedor" value="#{productosPvpBean.filtradoDataModel.proveedorFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaProveedor}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="proveedor" itemLabel="#{proveedor.nombreComercial}" itemValue="#{proveedor}"/>  
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="filtrarFabricanteTela" value="#{messages.FabricanteTela}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="filtrarFabricanteTela" value="#{productosPvpBean.filtradoDataModel.fabricanteTelaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaFabricanteTela}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="fabricanteTela" itemLabel="#{fabricanteTela.nombreComercial}" itemValue="#{fabricanteTela}"/>  
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="filtrarActivo" value="#{messages.Activo}"></p:outputLabel>
                            <p:selectOneMenu id="filtrarActivo" value="#{productosPvpBean.filtradoDataModel.activoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.Indiferente}" itemValue="" />  
                                <f:selectItem itemLabel="#{messages.Activo}" itemValue="#{true}" />
                                <f:selectItem itemLabel="#{messages.Inactivo}" itemValue="#{false}" />
                            </p:selectOneMenu>
                           
                        </h:panelGrid>
                        <p:commandButton process="@parent" update=":productoForm:productoGrowl :productoForm:dataTablePanel" value="#{messages.Filtrar}" actionListener="#{productosPvpBean.filtrar()}"></p:commandButton>
                    </p:dialog>
                    
                    <p:dialog modal="true" id="dialogoPaisesColumnas" widgetVar="dialogoPaisesColumnas"  header="#{messages.Paises}">
                        <p:panel id="panelDialogoPaisesColumnas" styleClass="noMargin noPadding noBorder">
                            <p:dataTable id="paisesElegidosDataTable" emptyMessage="#{messages.NoPaisElegido}" value="#{productosPvpBean.paisesYNiveles}" var="paisYNivel">
                                <f:facet name="header">Paises Elegidos</f:facet>
                                <p:column headerText="#{messages.NivelPrecio}" style="width:30%">
                                    <h:outputText value="#{paisYNivel.nivelPrecio.descripcion}"></h:outputText> 
                                </p:column>
                                <p:column headerText="#{messages.Pais}" style="width:30%">
                                    <h:outputText value="#{paisYNivel.pais.descripcion}"></h:outputText> 
                                </p:column>
                                <p:column headerText="#{messages.Moneda}" style="width:30%">
                                    <h:outputText value="#{paisYNivel.pais.moneda}"></h:outputText> 
                                </p:column>
                                <p:column headerText="#{messages.SignoMoneda}" style="width:10%">
                                    <h:outputText value="#{paisYNivel.pais.signoMoneda}"></h:outputText> 
                                </p:column>
                                <p:column>
                                    <p:commandButton actionListener="#{productosPvpBean.borrarPaisYnivel(paisYNivel)}" process=":dialogoForm:panelDialogoPaisesColumnas" update=":dialogoForm:panelDialogoPaisesColumnas :productoForm:dataTablePanel" icon="ui-icon-trash"></p:commandButton>
                                </p:column>
                            </p:dataTable>
                        </p:panel>
                        <p:panelGrid styleClass="noMargin noPadding noBorder inlineBlock" columns="4">
                            <p:outputLabel for="pais" value="#{messages.Pais}"></p:outputLabel>
                            <p:selectOneMenu converter="#{paisConverter}" required="true" id="pais" value="#{productosPvpBean.paisYNivelCollector.pais}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaPais}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.paises}" var="pais" itemLabel="#{pais.descripcion}" itemValue="#{pais}"/>  
                            </p:selectOneMenu>
                            <p:outputLabel for="nivelPrecio" value="#{messages.NivelPrecio}"></p:outputLabel>
                            <p:selectOneMenu converter="#{nivelPrecioConverter}" required="true" id="nivelPrecio" value="#{productosPvpBean.paisYNivelCollector.nivelPrecio}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaNivelPrecio}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.nivelesPrecio}" var="nivelPrecio" itemLabel="#{nivelPrecio.descripcion}" itemValue="#{nivelPrecio}"/>  
                            </p:selectOneMenu>
                            
                            <p:commandButton process="@parent" actionListener="#{productosPvpBean.addPaisYNivel()}" update="@parent :dialogoForm:panelDialogoPaisesColumnas :productoForm:dataTablePanel" value="#{messages.Anadir}">
                            </p:commandButton>
                        </p:panelGrid>
                    </p:dialog>
                    
                </h:form>
            </ui:define>
            <ui:define name="content">
                <h:form id="productoForm">
                    <p:growl autoUpdate="true" life="4000" id="productoGrowl"></p:growl>
                    <p:panel id="dataTablePanel">
                        <p:dataTable emptyMessage="#{messages.NoProductos}" resizableColumns="true" liveScroll="true" scrollable="true" scrollRows="50" scrollHeight="600" id="productos" var="producto" rowKey="#{producto.idProducto}" value="#{productosPvpBean.listadoEntidades}">
                            <p:column sortBy="#{producto.c.descripcion}" headerText="#{messages.C}" filterBy="#{producto.c.descripcion}" filterMatchMode="contains" style="width:60px">
                                <h:outputText value="#{producto.c.descripcion}"></h:outputText> 
                            </p:column>
                            <p:column sortBy="#{producto.temporada.descripcion}" headerText="#{messages.Temporada}" filterBy="#{producto.temporada.descripcion}" filterMatchMode="contains" style="width:60px">
                                <h:outputText value="#{producto.temporada.descripcion}"></h:outputText> 
                            </p:column>
                            <p:column sortBy="#{producto.descripcion}" headerText="#{messages.Nombre}" filterBy="#{producto.descripcion}" filterMatchMode="contains" style="width:60px">
                                <h:outputText value="#{producto.descripcion}"></h:outputText> 
                            </p:column>
                            <p:column sortBy="#{producto.color}" headerText="#{messages.Color}" filterBy="#{producto.color}" filterMatchMode="contains" style="width:60px">
                                <h:outputText value="#{producto.color}"></h:outputText> 
                            </p:column>
                            <p:column  styleClass="pvpHeader" sortBy="#{producto.pvp}" headerText="#{messages.PvpEsp}" style="width:60px">
                                <h:outputText value="#{producto.pvp}">
                                    <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                </h:outputText> 
                            </p:column>
                            <p:columns styleClass="pvpHeader" headerText="PVP #{paisYNivel.pais.descripcion} #{paisYNivel.nivelPrecio.descripcion} (#{pais.signoMoneda})" value="#{productosPvpBean.paisesYNiveles}" var="paisYNivel">
                                <p:inputText styleClass="pvpInput" value="#{productosPvpBean.recuperarPvpInternacionalDeProductoNivelPrecioYPais(producto, paisYNivel).pvp}">
                                    <f:convertNumber minFractionDigits="2" maxFractionDigits="2" />
                                    <p:ajax event="change" process="@all" listener="#{productosPvpBean.guardarPvpInternacional(producto, paisYNivel)}"></p:ajax>
                                </p:inputText>
                            </p:columns>
                        </p:dataTable>
                    </p:panel>
                </h:form>
            </ui:define>

        </ui:composition>

    </body>
</html>
